Użytkownik końcowy widzi monit o uprawnienia w PowerApps
Table of Contents
Jestem ogromnym fanem pracy z PowerApps i tworzenia rozwiązań biznesowych z użyciem tego narzędzia. Aż do minionego tygodnia nie byłem jednak świadom, że jeśli użyję połączeń do danych wymagających uprawnień (SharePoint w tym wypadku), wówczas użytkownik końcowy (korzystający z aplikacji), zostanie poproszony o pozwolenie jej na dostęp do danych używając uprawnień tegoż użytkownika.
Wiadomość, jaką użytkownik zobaczy, wygląda jak poniżej:
Taka sytuacja to „no go” dla właścicieli biznesowych, którzy pytają dlaczego taki komunikat się pojawia. Uważają (słusznie zresztą), że kiedy zwykły użytkownik to zobaczy, w żaden przycisk nie kliknie, z obawy przed konsekwencjami.
Rozwiązanie?
Szukałem w internecie rozwiązań, informacji w jaki sposób można skonfigurować takie połączenie, by zawsze działało w kontekście wybranego użytkownika lub miało podwyższone uprawnienia. Znalazłem, że taki pomysł został już zgłoszony: https://powerusers.microsoft.com/t5/PowerApps-Ideas/Delegate-to-Administrator-Allow-access-window-when-sharing/idi-p/98739. Super, ale to na razie jest jedynie pomysł..
Następnie znalazłem ten temat na forum: https://powerusers.microsoft.com/t5/General-Discussion/End-Users-receive-pop-up-asking-for-permission-when-launching/td-p/31906/ i rozwiązanie opiusjące użycie cmdletów PowerShell dla PowerApps (opisanych tutaj: https://docs.microsoft.com/en-us/powerapps/administrator/powerapps-powershell).
Spróbowałem i zadziałało! Poniżej znamieściłem opis krok po kroku prowadzący przez kolejne etapy instalacji cmdletów i ich uruchomienia, by finalnie pozbyć się popup’ów na zawsze!
Instalacja PowerApps cmdlets
Ważne! Musisz posiadać konto z uprawnieniami administratora na maszynie, na której będziesz uruchamiać cmdlety, a także konto Global Administrator tenanta Office 365, by poprawnie wykonać instalację i uruchomienie cmdletów!
- Pobierz skrypty PowerShell.
- Rozpakuj je do wybranego folderu.
- Otwórz Windows PowerShell w roli administratora.
- Ustaw ścieżkę w konsoli do lokalizacji, w której znajdują się rozpakowane, pobrane pliki (używając polecenia „cd”).
Musisz zmienić/ podnieść poziom Execution Policy dla skryptów wykonywanych na Twojej maszynie. Wklej i uruchom poniższy skrypt:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
Następnie, z uwagi na znany problem, opisywany przez zespół Microsoft, uruchomienie skryptów może również wymagać ręcznego „odblokowania” w PowerShell. Skopiuj i uruchom poniższe polecenie:
dir . | Unblock-File
Następnie zaimportuj wymagane moduły:
Import-Module .\Microsoft.PowerApps.Administration.PowerShell.psm1 -Force
Import-Module .\Microsoft.PowerApps.PowerShell.psm1 -Force
Uruchomienie PowerApps cmdlets
Poniższe polecenie otworzy okienko do wpisania danych do logowania (AAD account & password), które będą następnie używane przez polecenia. Użyj danych Globalnego Administratora. Sesja będzie ważna przez następnych 8 godzin:
Add-PowerAppsAccount
Następnie otwórz stronę ze szczegółami aplikacji PowerApps, którą chcesz zmodyfikować i skopiuj jej App ID:
Upewnij się, że konto Global Admin (jeśli nie jest to to samo konto, co Twoje), posiada uprawnienia „Co-owner” lub „Owner” dla aplikacji (oraz posiada przypisaną licencję PowerApps P2). Jeśli nie, udostępnij aplikację temu kontu:
Następnie, skopiuj, wstaw „APP-ID” swojej aplikacji i uruchom poniższy Cmdlet, by usunąć prośbę o uprawnienia w swojej aplikacji:
Set-AdminPowerAppApisToBypassConsent -AppName APP-ID -ApiVersion 2017-05-01
Jeśli wszystko przebiegło poprawnie, powinno się pojawić: „Code: 200” i „Description: OK”. Od teraz, Twoi użytkownicy końcowi, gdy otworzą aplikację, nie będą już proszeni o zaakceptowanie dostępu do danych przez nią.
Disclaimer: przed uruchomieniem cmdletów opublikowałem aplikację ponownie używając konta Administratora Globalnego. Nie sprawdziłem, czy niewykonanie tego kroku spowodowałoby, że cmdlet uruchomiłby się niepoprawnie. Od czasu jego wykonania pracując zwykłym kontem, wielokrotnie modyfikowałem i ponownie publikowałem aplikację, jednak okienko z prośbą o uprawnienia już się nie pokazuje.